package main

import "fmt"

func main() {
	var grade string = "A"
	switch grade { // 如果不写var1，默认为true
	case "A":
		fmt.Printf("A")
		fallthrough
	case "B":
		fmt.Printf("B")
		fallthrough
	default:
		fmt.Printf("C")
	}
	//	遍历字符串
	str1 := "123GAFcs张个./"
	traverseString(str1)
	loop_contorl()
}

func traverseString(str1 string) {

	for i, value := range str1 {
		fmt.Printf("第%v位字符是:%c\n", i, value)
	}
}

func loop_contorl() {
	fmt.Printf("\n输出1-50之间所有的不包含4的数字,--goto实现\n")
	unm := 0
LOOP:
	for unm < 50 {
		unm++
		if unm%10 == 4 || unm/10%10 == 4 {
			goto LOOP
		}
		fmt.Printf("%d\t", unm)
	}
}

/*theme if

 if 布尔表达式{
	不需要用括号将条件包起来
	左括号必须同if else 在一行
	在if 之后条件语句之前，可以进行变量初始化，使用；进行分隔
}else if{

}else{

}
theme switch 自带break，如果需要继续执行，需要在其中的一个case后面加上，fallthrough不过这样就会缺少一点，switch的一点特性
switch var1{  // 如果不写var1，默认为true
case val1:
case val2:
default:

theme for 是go中唯一的循环，规定不能带括号
for init；condition；post{
//init 初始化语句，可以不写，但是；必须有
//condition 条件表达式，可以不写，就会形成死循环
//post 结束语句
//	循环体
}

}

theme loop_control break continue,goto
break 跳出当前循环
continue 跳出当次循环
goto
语法
 LABEL :
 goto
*/
